Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Server version of Hercules #10

Open
wants to merge 117 commits into
base: master
Choose a base branch
from

Conversation

marcopioppini
Copy link

This changes Hercules from a 1 transfer at-a-time tool to a long-running server.

For large files and with many lost packets, the number of ACK packets
reuquired to convey all ACK ranges can grow too large, leading to the
sender receiving more ACKs than it can process.
Change ACK sending as follows: Acks are still sent at a regular
interval, but only up to 5 packets at once. Acks sent in the next
interval pick up where the previous one left off, so acks now "loop"
over multiple intervals.
Copy link

@aaronbojarski aaronbojarski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Marco for opening this PR!
I looked through the documentation (and only the documentation) and found a few typos.
Note that I commented on the Markdown files instead of the manual files as they were easier to read. So probably you will update the manual files and then just rebuild the Markdown files.

Hope this helps.


**DefaultNumPaths**=*int*

> Specify how many SCION path to use for data transfers.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

paths (plural)

> When setting this option, note that the file paths supplied by users will be
> interpreted relative to this new directory.

> Example: DropUser = "/mnt/data/"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be ChrootDir = "/mnt/data/"?

* For transfers to any other host in AS
*18-a:b:c*:

* A payload length of 1400 should be used.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1400B to be consistent with previous payload length definition.

# DESCRIPTION

**hercules-server**
is the server component of the Hercules file transfer sytem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

system (typo)

# DESCRIPTION

**hercules-monitor**
is the monitor component of the Hercules file transfer sytem.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

system (typo)


#### Termination
- Using larger packets (jumbo frames) can also improve performance. Hercules supports jumbo frames up to a MTU of 9000 bytes. Note, however, that support for jumbo frames (via XDP multibuffer/fragments) requires at least kernel 6.6. On older versions the packet size is limited to 3000 bytes.
Further, support for jumbo frames in combination with zero-copy mode is device-dependent. To use jumbo frames on such a device, disable zero-copy in Hercules' file.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Hercules' config file" instead of "Hercules' file". Or what did you mean?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants